/**
 * [toArab 将中文数字转为阿拉伯数字]
 * cleft和cright分别为正则限定字符，防止“千山万水”被替换为“1000山10000水”
 * 使用方法：t_cArab("第一千零叁十五章 千山万水","第","章")  返回“第1035章 千山万水”
 * @param  {[String]} str    [要替换的字符]
 * @param  {[String]} cleft  [左侧限定字符]
 * @param  {[String]} cright [右侧限定字符]
 * @return {[String]}        [返回替换后的字符]
 */
export function toArab(str, cleft, cright) {

    const cnNum = '〇一二三四五六七八九十百千万亿零壹贰叁肆伍陆柒捌玖拾佰仟萬億';
    const Arab = ['+0', '+1', '+2', '+3', '+4', '+5', '+6', '+7', '+8', '+9', '0', '00', '000', '0000', '00000000'];

    cleft = cleft || '';
    cright = cright || '';

    return str.replace(new RegExp(cleft + '([' + cnNum + ']+)' + cright, 'g'), function (a, b) {
        let tmpstr = '';

        for (const i in b) {
            tmpstr += Arab[cnNum.indexOf(b[i]) % 15];
        }

        return cleft + eval(tmpstr.replace(/(^0|\+00)/g, '+10')) + cright; //修复十三或一千零十三的错误
    });
}